<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 在一个函数内部又定义了一个函数,闭包的核心就是内部函数可以引用外部函数的参数和变量，通过返回函数来扩大函数的作用域
        function f1(){
            var n=89;
            function f2(){//只是定义函数，必须调用才会执行
                console.log(n);//在内部函数f2中可以访问函数f1中的局部变量n
            }
            // f2();
            return f2;//返回函数f2

        }
        var res=f1();
        res();
        // f1()();


        // 2.让变量的值始终保持在内存中
        function f3(){
            var m=999;
            add=function(){
                m+=1;//1000
            };
            function f4(){
                console.log(m);
            }
            return f4;
        }
        var res2=f3();
        res2();//999
        add();//1000
        res2();//1000
        add();//1001
        res2();//1001
        


    </script>
</head>
<body>
    
</body>
</html>